home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C ++ / Frameworks / SCAPI 0.85 / Spunk Cross API 1.0 / WinSCAPI / Headers / SCAPIDrawingArea.h < prev    next >
Encoding:
Text File  |  1997-06-16  |  4.3 KB  |  176 lines  |  [TEXT/CWIE]

  1. // ===========================================================================
  2. //    SCAPIDrawingArea.h            ©1997 Spunk Cross         All rights reserved.
  3. // ===========================================================================
  4.  
  5. #ifndef SCAPIDRAWINGAREA_H
  6. #define SCAPIDRAWINGAREA_H
  7.  
  8. #include "SCAPICommonIncludes.h"
  9. #include "SCAPIWindow.h"
  10. #include "SCAPIGroupBox.h"
  11.  
  12.  
  13. // ---------------------------------------------------------------------------
  14. //        Defines
  15. // ---------------------------------------------------------------------------
  16.  
  17. #define SCAPIDrawingArea_default_originx        0
  18. #define SCAPIDrawingArea_default_originy        0
  19. #define SCAPIDrawingArea_default_width            100
  20. #define SCAPIDrawingArea_default_height            100
  21.  
  22. #define    SCAPIDrawingArea_LeftMouseButton        0
  23. #define    SCAPIDrawingArea_MiddleMouseButton        1
  24. #define    SCAPIDrawingArea_RightMouseButton        2
  25.  
  26. #define    MAX_NUM_DRAWINGAREAS                    100
  27.  
  28.  
  29. // ---------------------------------------------------------------------------
  30. //        SCAPIDrawingArea Class
  31. // ---------------------------------------------------------------------------
  32.  
  33. class SCAPIDrawingArea : public CWnd
  34. {
  35.     friend class MFCApp;
  36.     
  37.     // ===========================================================
  38.     // === Spunk Cross API, these are the routines you can use ===
  39.     // ===========================================================
  40.     
  41.         // Constructor - Destructor
  42.         // ------------------------
  43.         
  44.     public:
  45.     
  46.         SCAPIDrawingArea(    SCAPIWindow*    inWindowP,
  47.                             int                inOriginx = SCAPIDrawingArea_default_originx,
  48.                             int             inOriginy = SCAPIDrawingArea_default_originy,
  49.                             int                inWidth = SCAPIDrawingArea_default_width,
  50.                             int                inHeight = SCAPIDrawingArea_default_height        );
  51.         
  52.         ~SCAPIDrawingArea();
  53.         
  54.         
  55.         // Member functions
  56.         // ----------------
  57.         
  58.     protected:
  59.     
  60.         virtual void    DrawEvent();
  61.         virtual void    LeftMouseButtonDownEvent(int    x, int    y);
  62.         virtual void    MiddleMouseButtonDownEvent(int    x, int    y);
  63.         virtual void    RightMouseButtonDownEvent(int    x, int    y);
  64.         virtual void    LeftMouseButtonUpEvent(int    x, int    y);
  65.         virtual void    MiddleMouseButtonUpEvent(int    x, int    y);
  66.         virtual void    RightMouseButtonUpEvent(int    x, int    y);
  67.         virtual void    MouseMove(int    x, int    y);
  68.         virtual void    MouseEnterArea();
  69.         virtual void    MouseLeaveArea();
  70.         
  71.         
  72.     public:
  73.     
  74.         void    SetBackgroundColor(    float    r, 
  75.                                     float    g, 
  76.                                     float    b    );
  77.                                     
  78.         void    SetDrawingColor(    float    r, 
  79.                                     float    g, 
  80.                                     float    b    );
  81.                                     
  82.         void    Clear();
  83.         
  84.         void    ClearArea(    int        inOriginx,
  85.                             int     inOriginy,
  86.                             int        inWidth,
  87.                             int        inHeight    );
  88.                             
  89.         void    DrawPoint(    int        inPointx,
  90.                             int     inPointy    );
  91.                             
  92.         void    DrawLine(    int        inStartPointx,
  93.                             int     inStartPointy,
  94.                             int        inEndPointx,
  95.                             int        inEndPointy        );
  96.         
  97.         void    DrawRectangle(    int        inOriginx,
  98.                                 int        inOriginy,
  99.                                 int        inWidth,
  100.                                 int        inHeight    );
  101.                                 
  102.         void    DrawFilledRectangle(    int        inOriginx,
  103.                                         int        inOriginy,
  104.                                         int        inWidth,
  105.                                         int        inHeight    );
  106.                                         
  107.         void    DrawOval(    int        inOriginx,
  108.                             int        inOriginy,
  109.                             int        inWidth,
  110.                             int        inHeight    );
  111.                                 
  112.         void    DrawFilledOval(    int        inOriginx,
  113.                                 int        inOriginy,
  114.                                 int        inWidth,
  115.                                 int        inHeight    );
  116.         
  117.         
  118.     // =================================
  119.     // === Internal part, do not use ===
  120.     // =================================                    
  121.         
  122.         // Member variables
  123.         // ----------------
  124.         
  125.     private:
  126.         
  127.         SCAPIGroupBox*        mBorderP;
  128.         float                mDrawingRed;
  129.         float                mDrawingGreen;
  130.         float                mDrawingBlue;
  131.         float                mBackgroundRed;
  132.         float                mBackgroundGreen;
  133.         float                mBackgroundBlue;
  134.         CDC                    mOffDC;
  135.         CBitmap                mBitmap;
  136.         int                    mWidth;
  137.         int                    mHeight;
  138.         BOOL                mMouseEntered;
  139.         
  140.  
  141.         // Member functions
  142.         // ----------------
  143.         
  144.     protected:
  145.     
  146.         afx_msg void        OnPaint();
  147.         afx_msg void        OnLButtonDown(UINT, CPoint);
  148.         afx_msg void        OnLButtonUp(UINT, CPoint);
  149.         afx_msg void        OnMButtonDown(UINT, CPoint);
  150.         afx_msg void        OnMButtonUp(UINT, CPoint);
  151.         afx_msg void        OnRButtonDown(UINT, CPoint);
  152.         afx_msg void        OnRButtonUp(UINT, CPoint);
  153.         afx_msg void        OnMouseMove(UINT, CPoint);
  154.         DECLARE_MESSAGE_MAP();
  155.         
  156.         BOOL                CursorInClient();
  157.         
  158.         
  159.         // Static variables
  160.         // ----------------
  161.         
  162.     private:
  163.     
  164.         static SCAPIDrawingArea*        sDrawingAreaList[MAX_NUM_DRAWINGAREAS];
  165.         static int                        sDrawingAreaListLength;
  166.         
  167.         
  168.         // Static functions
  169.         // ----------------
  170.         
  171.     private:
  172.     
  173.         static void        ManageEnterLeaveArea();
  174. };
  175.  
  176. #endif